In critical real-time systems, i.e. systems that do not tolerate any deadline violation through a belated execution of an operation, tasks are often executed through static scheduling methods. A static temporal allocation of the need for execution resources is then constructed offline, which demonstrates the temporal independence of tasks between them as regards the use of resources, and in particular the processor. This approach is described, for example, in the article [“A method and a technique to model and ensure timeliness in safety critical real-time systems”, C. Aussaguès, V. David, Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998], and in patent applications WO2006-050967 and US2010-0199280.
However, this approach requires considering only a single sequencing plan for all activities, thus considering only a single time base for determining deadlines. This makes implementations without interference on a single processor difficult, for tasks with uncorrelated time bases, such as a task using a clock to determine its deadlines and a task using a position of a variable speed object to determine its deadlines. This would imply building two sequencing plans clocked by a common time base so that they can be composed in a single sequencing plan without interference between tasks. This is achievable in practice only where the resources are largely oversized to account for the worst-case scenario of each situation.
In some real-time systems having a high level of performance, that are not defined as “critical” because they can tolerate deadline violations within a certain margin, the composition of two sequencing plans clocked by different time bases is performed by dynamic scheduling algorithms. Such algorithms are described, for example, in [“Scheduling algorithms for multiprogramming in a hard real-time environment”, C. Liu, J. Layland, Journal of the ACM, vol. 20, no. 1, pp. 46-61] and [“Foundations of Real-Time Computing: Scheduling and Resource Management”, edited by André M. Van Tilborg, Gary M. Koob, 1991, Kluwer Academic Publishers] and also in [“A method and a technique to model and ensure timeliness in safety critical real-time systems”, C. Aussaguès, V. David, Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998].
With these algorithms, preemptions are inevitable, i.e. the operating system can interrupt an ongoing operation to execute a more urgent operation. Scheduling being dynamic, the number and duration of the preemptions is not determinable, and each preemption introduces an overhead to perform context switching. This causes interference between tasks, so that the systems are more difficult to size, less predictable and not reproducible on complex processor architectures. Designers of such systems also encounter difficulties to properly set task priorities or deadlines in a system with two different time bases. The chosen options, such as the variation in execution needs depending on the values of application parameters, make systems constructed in this way very complex and uncontrollable.